// pages/preview/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 预设的代码内容，后续可从编辑器传递
    codeContent: `// 欢迎使用代码预览功能
function fibonacci(n) {
  if (n <= 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(x => x * 2);

class Calculator {
  constructor() {
    this.result = 0;
  }
  
  add(value) {
    this.result += value;
    return this;
  }
  
  multiply(value) {
    this.result *= value;
    return this;
  }
  
  getResult() {
    return this.result;
  }
}

const calc = new Calculator();
console.log(calc.add(10).multiply(2).getResult()); // 20

// 异步函数示例
async function fetchData() {
  try {
    const response = await fetch('/api/data');
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Error:', error);
  }
}`,
    highlightedCode: '', // 保留作为备用
    lineNumbers: [], // 行号数组
    totalLines: 0, // 总行数
    currentLanguage: 'javascript' // 当前语言
  },

  /**
   * 应用语法高亮
   */
  applySyntaxHighlight() {
    const code = this.data.codeContent;
    const lines = code.split('\n');
    const lineNumbers = lines.map((_, index) => index + 1);
    const totalLines = lines.length;
    
    // 更新行号和统计信息
    this.setData({
      lineNumbers: lineNumbers,
      totalLines: totalLines
    });
    
    // 语法高亮现在由highlight组件处理，无需手动处理
  },

  /**
   * 切换语法高亮
   */
  toggleSyntaxHighlight() {
    const newState = !this.data.syntaxHighlightEnabled;
    this.setData({
      syntaxHighlightEnabled: newState
    });
    
    wx.showToast({
      title: newState ? '已开启语法高亮' : '已关闭语法高亮',
      icon: 'success',
      duration: 1500
    });
    
    // 重新应用高亮
    this.applySyntaxHighlight();
  },

  /**
   * 复制代码
   */
  copyCode() {
    wx.setClipboardData({
      data: this.data.codeContent,
      success: () => {
        wx.showToast({
          title: '代码已复制',
          icon: 'success'
        });
      },
      fail: () => {
        wx.showToast({
          title: '复制失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 返回编辑器
   */
  goBackToEditor() {
    wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 如果有传递的代码内容，使用传递的内容
    if (options.code) {
      this.setData({
        codeContent: decodeURIComponent(options.code)
      });
    }
    
    // 应用语法高亮
    this.applySyntaxHighlight();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})